Modem computer operating systems have the ability to present and manage graphical user interface elements on an output device, such as a monitor or printer. When a graphical user interface element is created within an application, the item is sized and placed appropriately for rendering on the output device. Similarly, when an existing graphical user interface element is modified or removed within an application, or a new user interface element is added, the output device must reflect this change appropriately. Existing computer operating systems make use of device drivers to communicate with particular output devices, thus sparing a software developer from the messy details of rendering graphical output on specific output devices. Existing computer operating systems accomplish this by publishing Application Programming Interfaces (“APIs”) to prospective software developers.
Generally, an API is a set of high-level function calls made available to a software developer that are independent from the low-level instructions necessary for any particular device. The platform or operating system, with the aid of device drivers, typically performs any needed translation of the high-level API calls to the low-level device-specific calls.
Nevertheless, although a software developer may not wish to concern himself with implementing how his application's graphical user interface elements are physically displayed or rendered on any particular output devices, the developer may be interested in how those elements are logically laid out and managed. For example, a software developer may wish to develop a graphical user interface that displays its menus or arranges icons in a particular manner. Or a developer may wish to develop an application that arranges and displays multiple graphical user interface elements in a single document in a particular fashion. Some tools have given software developers certain abilities to manage graphical layouts, but such abilities are often complex or inefficient.